GWTをおすすめする/しない について


概要

GWTについて、自分が考えている事を纏めておく。

・どんな人にお勧めするか

・どんな人にお勧めしないか

を主眼にする。



自分の目、判断基準について

チーム戦を前提に機構やルールを組み上げる仕事をしてるので、

自分の主義主張に関して、

「えっそれ個人なら問題にならなくね?」というコトがありがち。


それでも、自分にとっては、数日前の自分ですら他人(覚えてない自信がある)なので、

・如何に暗黙のルールを自明にできるか

・如何にルール遵守を自動化できるか

・どうしても手でやらなきゃならないとして、如何にルール自体の数を減らせるか


というのが、自分にとって必要な理だったりします。

判断基準として共有までに。



前提、GWTとはなんだったのか

Googleが作った、WebToolKit

略してGWT。

.javaファイルに書かれたjava+jsソースを、jsに変換する。


単純に書くと、

Javaを使って、ブラウザで動くアプリのコーディングができる


なんか気を利かせて、各ブラウザ向けのコードを吐いてくれたりする。



圧倒的な利点

・Javaの言語的なルールをもってして、JSを構造的に記述できる

→妄信的にコーディングルールを定めてクソみたいなJSコードになるよりは、

Javaというカチカチした言語のルールの中で記述する方がマシ。兆倍マシ。

が、これはGWTだけの利点ではなく、他の言語→JSを出力する仕掛け、でも実現できる。

LLVM to JSとか、ClojureScriptとか。

Dartはまだ仕様カチッとしてないしGoogleだから気にしない。


上記 恩恵として、大規模なWebクライアントを書く事が可能。あくまで可能性だけど。 

ブラウザでやった方が良い事、ネイティブでやった方が良い事、サーバでやった方が良い事、の3つがあり、

そのうちの一つが強大になって行くのを担保できる、という利がある。

はっきり言ってJSでのブラウザ巨大アプリは、作らないでいいなら作らないでいい方が本当に良い

でも、って場合、Javaのルールがある程度の助けになる。素のJSよりマシ。


・JavaでJSのテストが書け、ブラウザで実行できる

→JSで書いたライブラリを内包して、薄いラッパー書いてテストをJavaで書いて自動化、なんてことができる。



圧倒的な損点

・手法としてまどろっこしい

→実際まどろっこしい。変換行程は省けないし、変換アクセラレーションも限界がある。

でも、CI組んじゃえば割とどうでも良かったりする。


・Javaちゃんやっぱりちょっと、、ご免っていうかめんどくさい

→ハンドラとか書いてると挫けそうになる。メッセージング無いし。


・Googleプロダクトにありがちだけど、未来が不明

→が、すでに基礎を行うには十分なリソースがそろっていると言える。

JSでHTML5の機構を書いて、Javaでラップ、テストを書いて作って使う、なんてことも可能。

ぶっちゃけ未来なんてどうでも良い、と言える。

いっそ手放してくれたほうが、、、ほら、Waveみたいにさ、、

(ツールとプロダクトを一緒くたにすんなっつう反論はご尤も。)



GWTの現状

HTML4のブラウザアプリならそのまま使用OK。


HTML5の機能に対応するモジュールとかは無い、が、自力で足せる

リリース予定などのスケジュールが未定、そもナニしたいのか、リリース方針が未定


以上をふまえた上で、



自分がGWTをお勧めする人

初学でない + 

Java書けて + 

JSで大規模なものを作るのに苦を感じる + 

テストをする事に重要性を感じて + 

大穴で、JSの損点が他の言語のルールを使う事でどのように補完されるか見たい + 

な、人。


余談だけど、GWTが吐き出すJSが読める、ていう能力の必要はねーと思う。

バグったらJavaのコードをまず疑うべく。

どうせJSのコードを手で直す機会は絶対に訪れない訳だし。


ただし、現在12/05/19 16:09:54 ですけど、

1年後には誰も使わなくなってる言語になってると思います。


理由は、「他の ToJSCompile言語なりツール」が出て来るから。っていうかもう出てきてるんだけどさ。


なので、GWTは、「JavaをJSに変換する唯一の手段」ではなく、あくまで「JavaをJSに変換する1手段」でしかありません。

そこんとこよろしく。


別の選択肢があるなら別のを学ぶと良いと思うよ。



自分がGWTをお勧めしない人

初学 or 初学でない + 

Java書けない or Javaキライ +

JS好き or JSで大規模なものを作るのに苦を感じない +

別にテスト無くても大丈夫! だぜな +

日本語でおk +

な、人。


上記に該当する人は、根本的にお勧めしません。



初学ならこんな難しいものやるより、Coffeeとかのほうにしましょう。

JavaキライならGWTはJavaなのでBye! です。


JS好きならJS書いててください。コールバックコールバック。


別にテスト→そのコード、ずっと動くと良いね! JSでね!! ククク

日本語でおk→GoogleがGWTの死霊を1.6くらいで他言語化放置してるので、やめた方がいいよ。

以上。



In Other Words

GWT is already completed. and Dead. RIP.

please choose the other one.